/*
* $Id: QueenBeeTable.h 2 2009-12-23 13:58:02Z volok-aleksej@yandex.ru $
*
* Copyright 2009 by Volokitin Alexey
* All rights reserved
*
*/
#ifndef _QUEEN_BEE_TABLE_H_
#define _QUEEN_BEE_TABLE_H_

#include "../Table.h"
#include "../Operation.h"

class CQueenBeeTable : public CTable, public CFillContent
{
public:
	CQueenBeeTable();
	virtual ~CQueenBeeTable();
public:
	struct content : public CTable::content{
		std::tstring s_strDiscription;
		int s_nIdParentQueenBee;
		time_t s_date;
		enum breed{
			HYBRID = 0,
			ADAMII,
			ADANSONII,
			ANATOLICA,
			ARMENIACA,
			CAPENSIS,
			CARNICA,
			CARPATHICA,
			CAUCASICA,
			CECROPIA,
			CYPRIA,
			IBERIENSIS,
			INTERMISSA,
			JEMENITICA,
			LAMARCKII,
			LIGUSTICA,
			LITOREA,
			MACEDONICA,
			MAJOR,
			MEDA,
			MELLIFERA,
			MONTICOLA,
			NUBICA,
			POMONELLA,
			REMIPES,
			RUTTNERI,
			SAHARIENSIS,
			SCUTELLATA,
			SICULA,
			SOSSIMAI,
			SYRIACA,
			UNICOLOR
		}s_breed;
		virtual void Clear();
		virtual void Set(const std::vector<CTableItem>& aContent);
		virtual void Free();
	}m_content;
public:
	virtual void CreateTable(IDatabase* pDatabase);
	virtual void UpdateValue(IDatabase* pDatabase);
	virtual IResult* GetValue(IDatabase* pDatabase);
	virtual void SetValue(IDatabase* pDatabase);
	virtual void DeleteValue(IDatabase* pDatabase);
	virtual IOperation::i_content* CreateContent();
};

#endif/*_QUEEN_BEE_TABLE_H_*/